Skip to content

feat: add high-level DispatchFunc() interface for multi-type and mixed dispatch#29

Open
Ziminli wants to merge 3 commits intofeat/dev-infrafrom
feat/mix-dispatch-optim
Open

feat: add high-level DispatchFunc() interface for multi-type and mixed dispatch#29
Ziminli wants to merge 3 commits intofeat/dev-infrafrom
feat/mix-dispatch-optim

Conversation

@Ziminli
Copy link
Collaborator

@Ziminli Ziminli commented Mar 20, 2026

TL;DR: Add a high-level DispatchFunc() interface for multi-type and mixed dispatch, and use DispatchFunc() to dispatch DataType and block size at the same time in various implementations.

Key Changes

  • High-Level Dispatcher Interface:

    • Add a high-level DispatchFunc() interface for multi-type and mixed dispatch;
    • Any int64_t-convertible types can use this interface to simplify the dispatch usage.
  • Simplify Block Size Dispatching

    • Update the code in various CUDA implementations to use DispatchFunc() to dispatch DataType and block size at the same time.
  • Remove Unnecessary Macros

    • Remove the CUDA_BLOCK_SIZE_XXX macros/aliases and simply use numbers instead.
  • Style Correction

    • Fix a naming issue.

Known Issues & Future Work:

  • Spot some issues that does not comply with the design and these have been marked with TODO

Ziminli added 2 commits March 20, 2026 10:10
…and use `DispatchFunc()` to dispatch `DataType` and block sizes with a single call.

- add a convenient interface for any `int64_t`-convertible types, which is mostly used for multi-type dispatch and mixed dispatch
- use `DispatchFunc()` to dispatch `DataType` and block sizes with a single function call in various kernels' implementation
- remove the `CUDA_BLOCK_SIZE_XXX` macros and simply use numbers instead
@Ziminli Ziminli force-pushed the feat/mix-dispatch-optim branch from 02e90d5 to 4f7b2a4 Compare March 20, 2026 10:10
@Ziminli
Copy link
Collaborator Author

Ziminli commented Mar 20, 2026

MetaX

Processing /root/InfiniOps
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: pytest in /opt/conda/lib/python3.10/site-packages (from InfiniOps==0.1.0) (8.4.1)
Requirement already satisfied: pytest-cov in /opt/conda/lib/python3.10/site-packages (from InfiniOps==0.1.0) (7.0.0)
Requirement already satisfied: pytest-xdist in /opt/conda/lib/python3.10/site-packages (from InfiniOps==0.1.0) (3.8.0)
Requirement already satisfied: ruff in /opt/conda/lib/python3.10/site-packages (from InfiniOps==0.1.0) (0.15.7)
Requirement already satisfied: torch in /opt/conda/lib/python3.10/site-packages (from InfiniOps==0.1.0) (2.4.0+metax3.2.1.3)
Requirement already satisfied: exceptiongroup>=1 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (1.3.0)
Requirement already satisfied: iniconfig>=1 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (2.1.0)
Requirement already satisfied: packaging>=20 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (25.0)
Requirement already satisfied: pluggy<2,>=1.5 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (1.6.0)
Requirement already satisfied: pygments>=2.7.2 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (2.19.2)
Requirement already satisfied: tomli>=1 in /opt/conda/lib/python3.10/site-packages (from pytest->InfiniOps==0.1.0) (2.3.0)
Requirement already satisfied: coverage>=7.10.6 in /opt/conda/lib/python3.10/site-packages (from coverage[toml]>=7.10.6->pytest-cov->InfiniOps==0.1.0) (7.11.0)
Requirement already satisfied: execnet>=2.1 in /opt/conda/lib/python3.10/site-packages (from pytest-xdist->InfiniOps==0.1.0) (2.1.2)
Requirement already satisfied: filelock in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (3.20.0)
Requirement already satisfied: typing-extensions>=4.8.0 in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (4.15.0)
Requirement already satisfied: sympy in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (1.14.0)
Requirement already satisfied: networkx in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (3.4.2)
Requirement already satisfied: jinja2 in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (3.1.6)
Requirement already satisfied: fsspec in /opt/conda/lib/python3.10/site-packages (from torch->InfiniOps==0.1.0) (2025.5.1)
Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.10/site-packages (from jinja2->torch->InfiniOps==0.1.0) (3.0.2)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /opt/conda/lib/python3.10/site-packages (from sympy->torch->InfiniOps==0.1.0) (1.3.0)
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml) ... done
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_x86_64.whl size=582095 sha256=55811192803802b57b0a76e9cf5b50628c8535111482d007b18943ff1598a427
  Stored in directory: /tmp/pip-ephem-wheel-cache-ys36zi23/wheels/84/73/f5/9b7b2aa420f23ecb29296accd9546f83a60d50799cf5250af8
Successfully built InfiniOps
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
Successfully installed InfiniOps-0.1.0

@voltjia
Copy link
Collaborator

voltjia commented Mar 24, 2026

NVIDIA

Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Processing /home/huangjiacheng/InfiniOps
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml): started
  Building wheel for InfiniOps (pyproject.toml): finished with status 'done'
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_x86_64.whl size=391826 sha256=b04cf12a9cf85fb2c2e0f96aa5c1af1fcb814428d98424bf8a57b9ca09fe01a9
  Stored in directory: /tmp/pip-ephem-wheel-cache-lbsyc8ud/wheels/b5/f3/6e/961028f73a2712eb7b753a23bdd1baaa714e27760fd92de56c
Successfully built InfiniOps
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
Successfully installed InfiniOps-0.1.0

[notice] A new release of pip is available: 25.3 -> 26.0.1
[notice] To update, run: pip install --upgrade pip
============================= test session starts ==============================
platform linux -- Python 3.10.16, pytest-9.0.2, pluggy-1.6.0
rootdir: /home/huangjiacheng/InfiniOps
configfile: pyproject.toml
testpaths: tests
plugins: anyio-4.12.1, xdist-3.8.0, cov-7.0.0, typeguard-4.4.4
collected 3372 items

tests/test_add.py ...................................................... [  1%]
........................................................................ [  3%]
........................................................................ [  5%]
..................                                                       [  6%]
tests/test_causal_softmax.py ....................................        [  7%]
tests/test_gemm.py ..................................................... [  9%]
........................................................................ [ 11%]
........................................................................ [ 13%]
........................................................................ [ 15%]
........................................................................ [ 17%]
........................................................................ [ 19%]
........................................................................ [ 21%]
........................................................................ [ 23%]
........................................................................ [ 26%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 32%]
........................................................................ [ 34%]
........................................................................ [ 36%]
........................................................................ [ 38%]
........................................................................ [ 41%]
........................................................................ [ 43%]
........................................................................ [ 45%]
........................................................................ [ 47%]
........................................................................ [ 49%]
........................................................................ [ 51%]
........................................................................ [ 53%]
........................................................................ [ 56%]
........................................................................ [ 58%]
........................................................................ [ 60%]
........................................................................ [ 62%]
........................................................................ [ 64%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 70%]
........................................................................ [ 73%]
........................................................................ [ 75%]
........................................................................ [ 77%]
........................................................................ [ 79%]
........................................................................ [ 81%]
........................................................................ [ 83%]
........................................................................ [ 85%]
........................................................................ [ 88%]
........................................................................ [ 90%]
........................................................................ [ 92%]
........................................................................ [ 94%]
...................................................................      [ 96%]
tests/test_rms_norm.py ................................................. [ 97%]
.......................                                                  [ 98%]
tests/test_swiglu.py ................................................    [100%]

======================= 3372 passed in 261.14s (0:04:21) =======================

MetaX

WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml): started
  Building wheel for InfiniOps (pyproject.toml): finished with status 'done'
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_x86_64.whl size=722315 sha256=586e1b9ca45d5eb4d761be01bd4c60cc62fd32acd0247e724679734beb1fa915
  Stored in directory: /tmp/pip-ephem-wheel-cache-3urc8c_y/wheels/b5/f3/6e/961028f73a2712eb7b753a23bdd1baaa714e27760fd92de56c
Successfully built InfiniOps
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
Successfully installed InfiniOps-0.1.0
============================= test session starts ==============================
platform linux -- Python 3.10.20, pytest-8.4.1, pluggy-1.6.0
rootdir: /home/huangjiacheng/InfiniOps
configfile: pyproject.toml
testpaths: tests
collected 3372 items

tests/test_add.py ...................................................... [  1%]
........................................................................ [  3%]
........................................................................ [  5%]
..................                                                       [  6%]
tests/test_causal_softmax.py ....................................        [  7%]
tests/test_gemm.py ..................................................... [  9%]
........................................................................ [ 11%]
........................................................................ [ 13%]
........................................................................ [ 15%]
........................................................................ [ 17%]
........................................................................ [ 19%]
........................................................................ [ 21%]
........................................................................ [ 23%]
........................................................................ [ 26%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 32%]
........................................................................ [ 34%]
........................................................................ [ 36%]
........................................................................ [ 38%]
........................................................................ [ 41%]
........................................................................ [ 43%]
........................................................................ [ 45%]
........................................................................ [ 47%]
........................................................................ [ 49%]
........................................................................ [ 51%]
........................................................................ [ 53%]
........................................................................ [ 56%]
........................................................................ [ 58%]
........................................................................ [ 60%]
........................................................................ [ 62%]
........................................................................ [ 64%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 70%]
........................................................................ [ 73%]
........................................................................ [ 75%]
........................................................................ [ 77%]
........................................................................ [ 79%]
........................................................................ [ 81%]
........................................................................ [ 83%]
........................................................................ [ 85%]
........................................................................ [ 88%]
........................................................................ [ 90%]
........................................................................ [ 92%]
........................................................................ [ 94%]
...................................................................      [ 96%]
tests/test_rms_norm.py ................................................. [ 97%]
.......................                                                  [ 98%]
tests/test_swiglu.py ................................................    [100%]

======================= 3372 passed in 299.92s (0:04:59) =======================

Iluvatar

WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml): started
  Building wheel for InfiniOps (pyproject.toml): finished with status 'done'
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_x86_64.whl size=338912 sha256=1c4821cd91cc7e206695cb0df68ff8cf601c85e1749959ecbbc0f773d1646d39
  Stored in directory: /tmp/pip-ephem-wheel-cache-poyr8v2y/wheels/b5/f3/6e/961028f73a2712eb7b753a23bdd1baaa714e27760fd92de56c
Successfully built InfiniOps
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
Successfully installed InfiniOps-0.1.0
============================= test session starts ==============================
platform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0
rootdir: /home/huangjiacheng/InfiniOps
configfile: pyproject.toml
testpaths: tests
plugins: anyio-4.9.0, cov-7.0.0, xdist-3.8.0
collected 3372 items

tests/test_add.py ...................................................... [  1%]
........................................................................ [  3%]
........................................................................ [  5%]
..................                                                       [  6%]
tests/test_causal_softmax.py ....................................        [  7%]
tests/test_gemm.py ..................................................... [  9%]
........................................................................ [ 11%]
........................................................................ [ 13%]
........................................................................ [ 15%]
........................................................................ [ 17%]
........................................................................ [ 19%]
........................................................................ [ 21%]
........................................................................ [ 23%]
........................................................................ [ 26%]
........................................................................ [ 28%]
........................................................................ [ 30%]
........................................................................ [ 32%]
........................................................................ [ 34%]
........................................................................ [ 36%]
........................................................................ [ 38%]
........................................................................ [ 41%]
........................................................................ [ 43%]
........................................................................ [ 45%]
........................................................................ [ 47%]
........................................................................ [ 49%]
........................................................................ [ 51%]
........................................................................ [ 53%]
........................................................................ [ 56%]
........................................................................ [ 58%]
........................................................................ [ 60%]
........................................................................ [ 62%]
........................................................................ [ 64%]
........................................................................ [ 66%]
........................................................................ [ 68%]
........................................................................ [ 70%]
........................................................................ [ 73%]
........................................................................ [ 75%]
........................................................................ [ 77%]
........................................................................ [ 79%]
........................................................................ [ 81%]
........................................................................ [ 83%]
........................................................................ [ 85%]
........................................................................ [ 88%]
........................................................................ [ 90%]
........................................................................ [ 92%]
........................................................................ [ 94%]
...................................................................      [ 96%]
tests/test_rms_norm.py ................................................. [ 97%]
.......................                                                  [ 98%]
tests/test_swiglu.py ................................................    [100%]

======================= 3372 passed in 246.73s (0:04:06) =======================

Moore

WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml): started
  Building wheel for InfiniOps (pyproject.toml): finished with status 'done'
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_x86_64.whl size=347984 sha256=a06bdc9dac12fb955a9932f53132c5c442aecd129fcbe08b33974f662c5b7543
  Stored in directory: /tmp/pip-ephem-wheel-cache-knwp4vyo/wheels/b5/f3/6e/961028f73a2712eb7b753a23bdd1baaa714e27760fd92de56c
Successfully built InfiniOps
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
Successfully installed InfiniOps-0.1.0
============================= test session starts ==============================
platform linux -- Python 3.10.20, pytest-7.2.2, pluggy-1.6.0
rootdir: /home/huangjiacheng/InfiniOps, configfile: pyproject.toml, testpaths: tests
plugins: cov-7.0.0, xdist-3.8.0, hypothesis-6.145.0, anyio-4.10.0
collected 3372 items

tests/test_add.py ...................................................... [  1%]
........................................................................ [  3%]
......................................................ssssssssssssssssss [  5%]
ssssssssssssssssss                                                       [  6%]
tests/test_causal_softmax.py ..................Fatal Python error: Segmentation fault

Current thread 0x00007fa72d8d9740 (most recent call first):
  File "/home/huangjiacheng/InfiniOps/tests/test_causal_softmax.py", line 43 in _causal_softmax
  File "/home/huangjiacheng/InfiniOps/tests/conftest.py", line 80 in pytest_pyfunc_call
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 121 in _multicall
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 512 in __call__
  File "/usr/local/lib/python3.10/dist-packages/_pytest/python.py", line 1789 in runtest
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 167 in pytest_runtest_call
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 121 in _multicall
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 512 in __call__
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 260 in <lambda>
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 339 in from_call
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 259 in call_runtest_hook
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 220 in call_and_report
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 131 in runtestprotocol
  File "/usr/local/lib/python3.10/dist-packages/_pytest/runner.py", line 112 in pytest_runtest_protocol
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 121 in _multicall
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 512 in __call__
  File "/usr/local/lib/python3.10/dist-packages/_pytest/main.py", line 349 in pytest_runtestloop
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 121 in _multicall
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 512 in __call__
  File "/usr/local/lib/python3.10/dist-packages/_pytest/main.py", line 324 in _main
  File "/usr/local/lib/python3.10/dist-packages/_pytest/main.py", line 270 in wrap_session
  File "/usr/local/lib/python3.10/dist-packages/_pytest/main.py", line 317 in pytest_cmdline_main
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_callers.py", line 121 in _multicall
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.10/dist-packages/pluggy/_hooks.py", line 512 in __call__
  File "/usr/local/lib/python3.10/dist-packages/_pytest/config/__init__.py", line 167 in main
  File "/usr/local/lib/python3.10/dist-packages/_pytest/config/__init__.py", line 190 in console_main
  File "/usr/local/lib/python3.10/dist-packages/pytest/__main__.py", line 5 in <module>
  File "/home/huangjiacheng/.local/share/uv/python/cpython-3.10-linux-x86_64-gnu/lib/python3.10/runpy.py", line 86 in _run_code
  File "/home/huangjiacheng/.local/share/uv/python/cpython-3.10-linux-x86_64-gnu/lib/python3.10/runpy.py", line 196 in _run_module_as_main

Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, torch._C, torch._C._dynamo.autograd_compiler, torch._C._dynamo.eval_frame, torch._C._dynamo.guards, torch._C._dynamo.utils, torch._C._fft, torch._C._linalg, torch._C._nested, torch._C._nn, torch._C._sparse, torch._C._special, torch_musa._MUSAC, markupsafe._speedups (total: 26)

Cambricon

WARNING: The directory '/root/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
WARNING: Ignoring invalid distribution -orch (/home/huangjiacheng/.venv/lib/python3.10/site-packages)
Looking in indexes: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: InfiniOps
  Building wheel for InfiniOps (pyproject.toml): started
  Building wheel for InfiniOps (pyproject.toml): finished with status 'done'
  Created wheel for InfiniOps: filename=infiniops-0.1.0-cp310-cp310-linux_aarch64.whl size=155485 sha256=3257227931610743238c46489d20a17634b3c1a8916a3eb91f0c74c57fb91360
  Stored in directory: /tmp/pip-ephem-wheel-cache-8_3xhgwo/wheels/b5/f3/6e/961028f73a2712eb7b753a23bdd1baaa714e27760fd92de56c
Successfully built InfiniOps
WARNING: Ignoring invalid distribution -orch (/home/huangjiacheng/.venv/lib/python3.10/site-packages)
Installing collected packages: InfiniOps
  Attempting uninstall: InfiniOps
    Found existing installation: InfiniOps 0.1.0
    Uninstalling InfiniOps-0.1.0:
      Successfully uninstalled InfiniOps-0.1.0
WARNING: Ignoring invalid distribution -orch (/home/huangjiacheng/.venv/lib/python3.10/site-packages)
Successfully installed InfiniOps-0.1.0
============================= test session starts ==============================
platform linux -- Python 3.10.20, pytest-9.0.2, pluggy-1.6.0
rootdir: /home/huangjiacheng/InfiniOps
configfile: pyproject.toml
testpaths: tests
plugins: xdist-3.8.0, cov-7.0.0, hypothesis-6.135.14
collected 3300 items

tests/test_add.py ...................................................... [  1%]
..................Fatal Python error: Segmentation fault

Current thread 0x0000fffd54045090 (most recent call first):
  File "/home/huangjiacheng/InfiniOps/tests/test_add.py", line 66 in _add
  File "/home/huangjiacheng/InfiniOps/tests/conftest.py", line 80 in pytest_pyfunc_call
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/python.py", line 1720 in runtest
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 179 in pytest_runtest_call
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 245 in <lambda>
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 353 in from_call
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 244 in call_and_report
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 137 in runtestprotocol
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/runner.py", line 118 in pytest_runtest_protocol
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/main.py", line 396 in pytest_runtestloop
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/main.py", line 372 in _main
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/main.py", line 318 in wrap_session
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/main.py", line 365 in pytest_cmdline_main
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_callers.py", line 121 in _multicall
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pluggy/_hooks.py", line 512 in __call__
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 199 in main
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/_pytest/config/__init__.py", line 223 in console_main
  File "/home/huangjiacheng/.venv/lib/python3.10/site-packages/pytest/__main__.py", line 9 in <module>
  File "/home/huangjiacheng/.local/share/uv/python/cpython-3.10-linux-aarch64-gnu/lib/python3.10/runpy.py", line 86 in _run_code
  File "/home/huangjiacheng/.local/share/uv/python/cpython-3.10-linux-aarch64-gnu/lib/python3.10/runpy.py", line 196 in _run_module_as_main

Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, torch._C, torch._C._fft, torch._C._linalg, torch._C._nested, torch._C._nn, torch._C._sparse, torch._C._special, torch_mlu._MLUC, pandas._libs.tslibs.ccalendar, pandas._libs.tslibs.np_datetime, pandas._libs.tslibs.dtypes, pandas._libs.tslibs.base, pandas._libs.tslibs.nattype, pandas._libs.tslibs.timezones, pandas._libs.tslibs.fields, pandas._libs.tslibs.timedeltas, pandas._libs.tslibs.tzconversion, pandas._libs.tslibs.timestamps, pandas._libs.properties, pandas._libs.tslibs.offsets, pandas._libs.tslibs.strptime, pandas._libs.tslibs.parsing, pandas._libs.tslibs.conversion, pandas._libs.tslibs.period, pandas._libs.tslibs.vectorized, pandas._libs.ops_dispatch, pandas._libs.missing, pandas._libs.hashtable, pandas._libs.algos, pandas._libs.interval, pandas._libs.lib, pandas._libs.ops, pandas._libs.hashing, pandas._libs.arrays, pandas._libs.tslib, pandas._libs.sparse, pandas._libs.internals, pandas._libs.indexing, pandas._libs.index, pandas._libs.writers, pandas._libs.join, pandas._libs.window.aggregations, pandas._libs.window.indexers, pandas._libs.reshape, pandas._libs.groupby, pandas._libs.json, pandas._libs.parsers, pandas._libs.testing (total: 61)

@Ziminli Ziminli marked this pull request as ready for review March 24, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants